// 给定一个整数数组 nums 和一个整数目标值 target，
// 请你在该数组中找出 和为目标值 target  的那 两个 整数，
// 并返回它们的数组下标
package main

import "fmt"

//第一时间想到就是两层for循环，先干
func twoSum(nums []int, target int) []int {
	count := len(nums)
	for i := 0; i < count; i++ {
		for j := i + 1; j < count; j++ {
			if nums[i]+nums[j] == target {
				return []int{i, j}
			}
		}
	}
	return []int{0, 0}
}

//官方哈希解法
func twoSum1(nums []int, target int) []int {
	hashTable := map[int]int{}
	for i, x := range nums {
		if p, ok := hashTable[target-x]; ok {
			return []int{p, i}
		}
		hashTable[x] = i
	}
	return nil
}

func main() {
	a := twoSum([]int{2, 7, 11, 15}, 9)
	fmt.Println("最终值为：", a)
}
